// utils/jsonUtil.js

/**
 * 安全解析JSON字符串
 * @param {string} jsonStr 原始JSON字符串（可能包含转义符、换行符）
 * @returns {object} 转换后的对象，如果解析失败返回 {}
 */
export function parseJSONSafe(jsonStr) {
	if (!jsonStr || typeof jsonStr !== "string") return {};

	try {
		// 去除首尾空格
		jsonStr = jsonStr.trim();

		// 如果带转义符，比如 \" 或 \r\n，先做一次反转义处理
		// 这种情况通常是字符串嵌套字符串的形式
		if (jsonStr.startsWith('"') && jsonStr.endsWith('"')) {
			// 去掉外层引号
			jsonStr = jsonStr.slice(1, -1);
		}

		// 将转义的换行符、双引号还原
		jsonStr = jsonStr
			.replace(/\r\n/g, "")
			.replace(/\\r\\n/g, "")
			.replace(/\\"/g, '"');

		// 解析JSON
		return JSON.parse(jsonStr);
	} catch (e) {
		// console.error("❌ JSON解析失败:", e, jsonStr);
		return jsonStr;
	}
}